import router from '@/router'
import axios from 'axios'
import { ElMessage } from 'element-plus'

// http://47.94.6.186:3001/admindoc
const request = axios.create({
  baseURL: 'http://47.94.6.186:3001/',
  timeout: 60000,
  headers: {
    // 'Content-Type':'application/json'
  },
})

// https://www.axios-http.cn/docs/instance

// 添加请求拦截器
request.interceptors.request.use(
  function (config) {
    // 在发送请求之前做些什么
    const token = localStorage.getItem('mall-b-token')
    if (token) {
      config.headers.token = token
      // config.headers.autxxxx = 'berar '+token
    }

    return config
  },
  function (error) {
    // 对请求错误做些什么
    return Promise.reject(error)
  },
)

// 添加响应拦截器
request.interceptors.response.use(
  function (response) {
    // 2xx 范围内的状态码都会触发该函数。
    // 对响应数据做点什么
    // const r = response.data as IResData<number>
    // r.code

    if (response.data.code == '10119') {
      console.log('响应拦截器')

      ElMessage.error(response.data.message)
      localStorage.removeItem('mall-b-token')
      router.push('/login')
    }

    return response
  },
  function (error) {
    // 超出 2xx 范围的状态码都会触发该函数。
    // 对响应错误做点什么
    return Promise.reject(error)
  },
)

export default request
